\chapter{Introduction}

Le projet consiste à simuler une application pour le partage de fichier en mode pair to pair. Ce système consiste à ce que les utilisateurs de ce réseau puissent partager leurs fichiers. Ainsi, un pair est considéré comme un client et comme un serveur car non seulement il télécharge des fichiers mais il en fournit également. \\

Lors du téléchargement, chaque fichier est découpé en pièces de tailles égales. Ainsi, un pair peut récupérer plusieurs pièces simultanément sur plusieurs pairs même si ceux-ci ne possèdent pas le fichier dans sa totalité. Chaque pair possède un BufferMap, permettant de préciser quelles sont les pièces que possède la pair. Au fur et à mesure que le téléchargement progresse, le BufferMap est mis à jour. \\

Nous sommes actuellement dans la version centralisée qui consiste à implémenter un Tracker permettant de gérer les demandes des pairs. Le Tracker connait tous les pairs et leurs fichiers. Par conséquent, lorsqu'un pair veut télécharger un fichier, le pair envoie une requête au Tracker qui le met en contact avec les pairs correspondatn à la demande.

Le tracker dispose d'un fichier de configuration qui lui est propre. Il permet à l'utilisateur de connaitre les paramètres de connexion comme le port du Tracker. De même, chaque pair dispose d'un fichier de configuration qui lui est propre. Il permet, par exemple, à l'utilisateur de connaitre la taille des messages  que les autres pairs veulent recevoir. 
